home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Software Vault: The Diamond Collection
/
The Diamond Collection (Software Vault)(Digital Impact).ISO
/
cdr44
/
speller2.zip
/
EMS.H
next >
Wrap
C/C++ Source or Header
|
1995-02-06
|
2KB
|
91 lines
#if !defined (_EMSARRAY_H)
#define _EMSARRAY_H
//////////////////////////////////////////////////////////////////
const PAGESIZE = 16384; //bytes
const int intElemNums = PAGESIZE / sizeof(int);
typedef unsigned int Word ;
class ems{
public:
Word Ems_Handle;
Word Page_Frame_Address;
Word Pages_Needed ;
int PhysPage;
Word curblock;
Word offset;
Word page;
char far * NormalPtr ;
ems(int pageNo);
ems(long size,int pageNo);
~ems();
int Ems_Installed();
Word Pages_Available();
void Alloc(Word Page_Requested);
void MapIn(Word Logical_Page_No, Word Physical_Page_No);
void Release();
int Error() { return EmsError;}
int valid() { return !EmsError;}
void * at(long index);
protected:
int EmsError ;
};
const int
EMM_INT = 0x67,
DOS_Int = 0x21,
GET_PAGE_FRAME = 0x41,
GET_UNALLOCATED_PAGE_COUNT= 0x42,
ALLOCATE_PAGES = 0x43,
MAP_PAGES = 0x44,
DEALLOCATE_PAGES = 0x45,
GET_VERSION = 0x46,
STATUS_OK = 0x0;
enum EMM_ERROR {
EMM_OK = 0,
EMM_NOTINSTALLED = -1,
EMM_SOFTERROR = 0x80,
EMM_HARDERROR = 0x81,
EMM_BUSY = 0x82,
EMM_BADHANDLE = 0x83,
EMM_UNIMP = 0x84,
EMM_NOFREEHAN = 0x85,
EMM_CONTEXTERR = 0x86,
EMM_WAYTOOBIG = 0x87,
EMM_TOOBIG = 0x88,
EMM_TOOSMALL = 0x89,
EMM_BADLOGPAGE = 0x8A,
EMM_BADFRAMENO = 0x8B,
EMM_HSTATESAVFULL = 0x8C,
EMM_MSTATESAVFULL = 0x8D,
EMM_MSTATERESTERR = 0x8E,
EMM_UNIMPSUB = 0x8F,
EMM_BADATTRIB = 0x90,
EMM_NOFEATURE = 0x91,
EMM_SRCOVERWRITE = 0x92,
EMM_BADLENGTH = 0x93,
EMM_CONEMSOVERLAP = 0x94,
EMM_OFFPAGE = 0x95,
EMM_TOOLONG = 0x96,
EMM_EMSEMSOVERLAP = 0x97,
EMM_LOST = 0x98,
EMM_UNUSED = 0x99,
EMM_BADALTREG = 0x9A,
EMM_NOFREEALTREG = 0x9B,
EMM_NOALTREG = 0x9C,
EMM_BADALTREG2 = 0x9D,
EMM_NODEDDMA = 0x9E,
EMM_BADDEDDMA = 0x9F,
EMM_UNKNAME = 0xA0,
EMM_NAMETAKEN = 0xA1,
EMM_ADDRWRAP = 0xA2,
EMM_BADPTR = 0xA3,
EMM_FORBIDDENFUNC = 0xA4
};
#endif // _EMSARRAY_H